Don't leak the old page size when
authorChristian Persch <chpe@cvs.gnome.org>
Mon, 4 Dec 2006 17:54:48 +0000 (17:54 +0000)
committerChristian Persch <chpe@src.gnome.org>
Mon, 4 Dec 2006 17:54:48 +0000 (17:54 +0000)
2006-12-04  Christian Persch  <chpe@cvs.gnome.org>

* gtk/gtkpagesetup.c: (gtk_page_setup_get_paper_size),
(gtk_page_setup_set_paper_size): Don't leak the old page size when

ChangeLog
gtk/gtkpagesetup.c

index 3fcb4d16acf9dd8720253d569435767bddcc83aa..113356aa293f8e74d25ec3f14bca928f4e95b747 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-12-04  Christian Persch  <chpe@cvs.gnome.org>
+
+       * gtk/gtkpagesetup.c: (gtk_page_setup_get_paper_size),
+       (gtk_page_setup_set_paper_size): Don't leak the old page size when
+       setting a new one. Bug #382314.
+
 2006-12-03  Michael Natterer  <mitch@gimp.org>
 
        * gtk/gtktextview.c: remove FIXME #include that is no longer needed.
index bf9793a7c1fab5a6f9bfd02d115e1a52f15d2f62..9db0fc719d4fcf2d26e925831dc429a1bd9a5913 100644 (file)
@@ -163,6 +163,8 @@ gtk_page_setup_set_orientation (GtkPageSetup       *setup,
 GtkPaperSize *
 gtk_page_setup_get_paper_size (GtkPageSetup *setup)
 {
+  g_return_val_if_fail (GTK_IS_PAGE_SETUP (setup), NULL);
+
   return setup->paper_size;
 }
 
@@ -181,7 +183,17 @@ void
 gtk_page_setup_set_paper_size (GtkPageSetup *setup,
                               GtkPaperSize *size)
 {
+  GtkPaperSize *old_size;
+
+  g_return_if_fail (GTK_IS_PAGE_SETUP (setup));
+  g_return_if_fail (size != NULL);
+
+  old_size = setup->paper_size;
+
   setup->paper_size = gtk_paper_size_copy (size);
+
+  if (old_size)
+    gtk_paper_size_free (old_size);
 }
 
 /**